Technical Field
The present disclosure relates to messaging frameworks for multiprocessor concurrency and, more specifically, to load balancing of work among multiple processors of a node.
Background Information
Traditionally, processor resource utilization may be improved by 1) balancing workloads to realize increased usage of available processor resources; and 2) by minimizing code path lengths associated with the balanced workload, i.e., to complete an increased amount of work per central processing unit (CPU) cycle. However, these approaches typically work against each other because, e.g., caching effects occur when work is moved among processors in a multiprocessing system (or as multiple pieces of work executing concurrently in the multiprocessing system interact with one another), which slows down execution of code paths. In addition, balancing workloads across processors frequently involves relinquishing (i.e., giving up) a CPU resource at a significant context-switch cost. Thus, it is desirable to reduce caching effects and avoid context switching costs when performing multiprocessor load balancing of services to achieve efficiency.